package cn.loioi.web.common;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.ui.Model;

import cn.loioi.multi.mysql.model.SysResource;
import cn.loioi.multi.mysql.model.SysRole;
import cn.loioi.multi.mysql.model.SysUser;
import cn.loioi.multi.service.user.LoginService;

/**
 * 通用控制器-后台
 * @文件 :BaseJqGridController.java
 * @作者 :cn.loioi
 * @创建时间 :2016年10月13日 下午1:10:43
 */
public class BaseUserController extends BaseJSONController {
	protected String _identity;
	private @Resource LoginService loginService;

	protected BaseUserController() {
		super();
	}

	/**
	 * @param baseTemplateUrl 模板根路径
	 */
	protected BaseUserController(String baseTemplateUrl) {
		super(baseTemplateUrl);
	}

	/**
	 * @param baseTemplateUrl 模板根路径
	 * @param identity 顶层标示
	 */
	protected BaseUserController(String baseTemplateUrl, String identity) {
		super(baseTemplateUrl);
		this._identity = identity;
	}

	/**
	 * 返回模板地址
	 * @param url 模板路径
	 * @param model Model
	 * @return
	 */
	protected String returnUrl(String url, Model model) {
		model.addAttribute("user", getUser());
		model.addAttribute("menus", BuildMenus.builds(getResources(), _identity));
		return returnUrl(url);
	}

	/**
	 * 获取用户资源
	 * @return
	 */
	protected final List<SysResource> getResources() {
		return loginService.getRsources(getAccount());
	}

	/**
	 * 获取用户角色
	 * @return
	 */
	protected final List<SysRole> getRoles() {
		return loginService.getRoles(getAccount());
	}

	/**
	 * 获取当前登录的用户
	 * @return
	 */
	protected final SysUser getUser() {
		return loginService.getUser(getAccount());
	}

	/**
	 * 获取当前登录用户的账号
	 * @return
	 */
	protected final String getAccount() {
		return String.valueOf(getSubject().getPrincipal());
	}
}
